﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Portfolio.Entities;
using Portfolio.Repository.Common;
using Portfolio.Repository.Interfaces;

namespace Portfolio.Repository.ArticleCategories
{
    /// <summary>
    /// Klasa Repozytorium Kategorie Artykułów Operacje(insert,update,delete)
    /// </summary>
    public class ArticleCategoryOperRepository : GenericRepository
    {
        /// <summary>
        /// Konstruktor dziedziczy z klasy Generycznej (ogólnej) Repozytorium, domyślny context=Portfolio3Entities
        /// </summary>
        /// <param name="context"></param>
        public ArticleCategoryOperRepository() : base() { }

        /// <summary>
        /// Metoda użytkownika
        /// Wprowadza nową kategorię artkułu
        /// </summary>
        /// <param name="category">Nowa kategoria</param>
        /// <returns>Nowy ArticleCategoryID</returns>
        public int InsertArticleCategory(ArticleCategoryT pArticleCategory)
        {
            return Add(pArticleCategory);
        }    

        /// <summary>
        /// Metoda użytkownika
        /// Modyfikuje kategorię artykułu
        /// </summary>
        /// <param name="category">Kategoria do modyfikacji</param>
        /// <returns>ArticleCategoryID</returns>
        public int UpdateArticleCategory(ArticleCategoryT pArticleCategory)
        {
            return Update<ArticleCategoryT>(pArticleCategory);
        }

        /// <summary>
        /// Metoda użytkownika
        /// Usuwa kategoria
        /// </summary>
        /// <param name="category">Kategoria do usunięcia</param>
        public void DeleteArticleCategory(ArticleCategoryT pArticleCategory)
        {
            Delete(pArticleCategory);
        }            
    }
}
